home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / misc / edu / globe099src.lha / Ami-Globe / amiglobe_types.h < prev    next >
C/C++ Source or Header  |  1994-09-21  |  4KB  |  161 lines

  1. #define MAX_VECT    180
  2. #define MAX_COUNTRY 1000
  3. #define MAX_PT      500
  4. #define MAX_AREA_PT MAX_PT*50
  5. #define MAX_BORDER  5000
  6. #define MAX_TRAJECTOIRE 100
  7.  
  8. #define MAX_CONTINENT 2
  9.  
  10. /* rayon de la Terre            */
  11. /* d'après:         rayon equatorial    rayon polaire   */
  12. /* Hayford              6378.388            6356.912    */
  13. /* Krasovskii           6378.245            6356.863    */
  14. /* approx: la Terre est une sphère de rayon moyen 6371.221 km*/
  15. #define RAYON 6371.221
  16.  
  17. typedef enum{ PROJ_FLAT,PROJ_MERCATOR,PROJ_GLOBE }E_TYPE_PROJ;
  18. typedef enum{ TRACE_FIL,TRACE_PLEIN }E_TYPE_TRACE;
  19.  
  20. typedef struct  vect
  21. {
  22.     short   int Code;
  23.     short   int x,y;
  24. }   VECT;
  25.  
  26. typedef struct  clip
  27. {
  28.     int  minx,miny,maxx,maxy;/* Carre dans lequel s'inscrit l'element */
  29. }   CLIP;
  30. /***********************************/
  31. /* Structure definissant un border */
  32. /***********************************/
  33. typedef struct border
  34. {
  35.     BOOL flg_draw;      /* Drapeau indiquant qu'il a deja ete dessinee */
  36.     CLIP    b_clip;
  37.     int nb_vect;        /* Nombre de pt de ce bord      */
  38.     VECT *p_vect;       /* pointeur sur le tableau de points    */
  39.  
  40.     LONG    offset;     /* Position du tableau de pt a la resloution max */
  41.     int nb_vect_bis;
  42.     VECT *p_vect_maxres;    /* Pointeur sur le tableau de points a la reso   */
  43.                 /* maximum                       */
  44. }   BORDER;
  45.  
  46.  
  47. /* Definition d'un element remarquable -> Ville, montagne, monument,...*/
  48.  
  49. typedef enum{ CAPITALE,VILLE,MONUMENT,MONTAGNE}E_TYPE;
  50.  
  51. typedef struct  Elem_Rem
  52. {
  53.     E_TYPE  Type;       /* Type (par ex, capitale, ville    */
  54.     char    *Nom;       /* Nom de cet element remarquable   */
  55.     int caracteristique; /* caracteristique de l'élem: pop, altitude... */
  56.     int Lon,Lat;    /* Position             */
  57.     struct  Elem_Rem *P_Next;/* Ptr sur le prochain element remarq. */
  58. }   ELEM_REM;
  59.  
  60.     
  61. #define NB_CAR_ABBREV   4
  62. /************************/
  63. /* Definition d'un pays */
  64. /************************/
  65.  
  66. typedef struct country
  67. {
  68.     char *name;     /* ptr sur le nom du pays       */
  69.     int  continent;     /* Numero du continent auquel app. pays */
  70.     int  nb_borders;    /* nombre de bords de ce pays       */
  71.     int  *p_borders;    /* pointeur sur le tableau des bords    */
  72.     char * off_name;
  73.     int superficie;
  74.     int population;
  75.     int PIB;
  76.     int pnb1,pnb2,pnb3;
  77.     char * presentation;    
  78.     CLIP c_clip;
  79.     ELEM_REM *P_Elem_Rem; /* Liste chainee des elements remarquables */ 
  80. }   COUNTRY;
  81.  
  82. typedef struct point
  83. {
  84.     int longitude;
  85.     int latitude;
  86.     BOOL existe;
  87. }   POINT;
  88.  
  89. typedef struct trajectoire
  90. {
  91.     char * nom;      /* nom de la trajectoire*/
  92.     VECT * vecteurs; /* tableau de vecteurs composant la trajectoire*/ 
  93.     int nb_vect;   /* nombre de vecteurs de la trajectoire*/    
  94.     CLIP clip;
  95. }   TRAJECTOIRE;
  96.  
  97. /* PREFERENCES: structure des préférences */
  98. typedef struct preference
  99. {
  100.     /* checkmarks de la fenêtre choix de la projection */
  101.     LONG Flg_Aff_Coord;
  102.     ULONG Flg_Draw_Lac;
  103.     ULONG Flg_Draw_Riv;
  104.     ULONG Flg_Aff_Country_Name;
  105.     ULONG Flg_Fill_Country;
  106.     ULONG Flg_Aff_Elem_Rem;
  107.     ULONG Flg_Aff_Trajectoires;
  108.  
  109.     /* type de projection */
  110.     E_TYPE_PROJ Type_Proj;
  111.     
  112.     /* type de tracé*/
  113.     E_TYPE_TRACE Type_Trace;
  114.     
  115.     int Glob_Min;
  116.     int Glob_Max;
  117.  
  118.     /* sliders de la vue 3D */
  119.     long int SL_x;
  120.     long int SL_y;
  121.     long int SL_z;
  122.     
  123.     /* ecran */
  124.     long DisplayId;
  125.     long Width;
  126.     long Height;
  127.     long Depth;
  128.     long OScan;
  129.  
  130.     /* booléens */
  131.     ULONG Flag_Distance;
  132.     ULONG Flag_Surface;
  133.     ULONG Flag_Echelle;
  134.     
  135.     /* autres booléens*/
  136.     ULONG Flg_Aff_LatLon;
  137.     ULONG Flg_Proj_3D;
  138.  
  139.     /* points */
  140.     POINT point_orig;
  141.     POINT point_dest;
  142.  
  143.     /* pays courant sélectionné*/
  144.     int country_sel;
  145.     
  146.     /*taille de la fenêtre*/
  147.     int win_width;
  148.     int win_height;
  149.     
  150.     /* profondeur de détail*/
  151.     int prof;
  152.     int prof_real;
  153.  
  154.     /* clip actuel */
  155.     CLIP clip_cur;
  156.  
  157.     /* extensions futures*/
  158.     char Dummy[40];
  159. }   PREFERENCE;
  160.     
  161.